﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;

namespace Ruction
{
    public static class GameCommands
    {
        private static Dictionary<string, RoutedUICommand> _routedCommands = null;

        static GameCommands()
        {
            _routedCommands = new Dictionary<string, RoutedUICommand>()
            {
                {"Exit", new RoutedUICommand("Exit the application.", "Exit", typeof(GameCommands),
                    new InputGestureCollection() { new KeyGesture(Key.Q, ModifierKeys.Control) })},

                {"About", new RoutedUICommand("Display information about the application.", "About", typeof(GameCommands),
                    new InputGestureCollection() { new KeyGesture(Key.Enter, ModifierKeys.Alt) })},

                {"NetGameStart", new RoutedUICommand("Start hosting a network game.", "NetGameStart", typeof(GameCommands),
                    new InputGestureCollection() { new KeyGesture(Key.J, ModifierKeys.Control | ModifierKeys.Shift) })},

                {"NetGameJoin", new RoutedUICommand("Join a hosted network game.", "NetGameJoin", typeof(GameCommands),
                    new InputGestureCollection() { new KeyGesture(Key.J, ModifierKeys.Control) })},

                {"NetGameChatSend", new RoutedUICommand("Send a chat message in a network game.", "NetGameChatSend", typeof(GameCommands))}
            };
        }

        public static RoutedUICommand Exit { get { return _routedCommands["Exit"]; } }

        public static RoutedUICommand About { get { return _routedCommands["About"]; } }

        public static RoutedUICommand NetGameStart { get { return _routedCommands["NetGameStart"]; } }

        public static RoutedUICommand NetGameJoin { get { return _routedCommands["NetGameJoin"]; } }

        public static RoutedUICommand NetGameChatSend { get { return _routedCommands["NetGameChatSend"]; } }
    }
}
